import { NgModule } from '@angular/core';
import { CommonModule, DatePipe } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';


import { MonitorRoutingModule } from './monitor-routing.module';
import { MonitorComponent } from './monitor.component';
import { SharedModule } from '../../shared/shared.module';

import { TurbineListComponent } from './turbine-list/turbine-list.component';
import { TurbineDataListComponent } from './turbine-data-list/turbine-data-list.component';
import { FarmSelectorComponent } from './farm-selector/farm-selector.component';
import { TurbineComponent } from './turbine-list/turbine/turbine.component';
import { TurbineMatrixComponent } from './turbine-matrix/turbine-matrix.component';
import { MatrixTagSelectorComponent } from './turbine-matrix/matrix-tag-selector/matrix-tag-selector.component';
import { FarmMultiSelectorComponent } from './turbine-matrix/farm-multi-selector/farm-multi-selector.component';

import { InverterListComponent } from './inverter-list/inverter-list.component';
import { FarmService } from "../../service/farm.service";
import { FarmPlantPowerService } from "../../service/farm-plant-power.service";
import { TurboperCategoryService } from "../../service/turboper-category.service";
import { TurbStatusService } from "../../service/turbstatus.service";
import { PhaseService } from '../../service/phase.service';
import { CircuitService } from "../../service/circuit.service";
import { TagService } from "../../service/tag.service";
import { StopInfoStatisticsService } from "../../service/stopInfo-statistics.service";

import { TurboperCurrentService } from "../../service/turboper_current.service";
import { MaterialSharedModule } from "../../shared/material-shared.module";
import { MatrixFarmComponent } from './turbine-matrix/matrix-farm/matrix-farm.component';
import { MatrixTurbineComponent } from './turbine-matrix/matrix-turbine/matrix-turbine.component';
import { MatrixTotalComponent } from "./turbine-matrix/matrix-total/matrix-total.component";
import { TurbineTrendComponent } from './turbine-trend/turbine-trend.component';
import { TurbineLoadComponent } from './turbine-load/turbine-load.component';
import { FarmLoadTrendComponent } from './farm-load-trend/farm-load-trend.component';
import { TagMapService } from "../../service/tag-map.service";
import { MatrixStateGroupService } from "../../service/matrix-state-group.service";
import { MatrixStateService } from "../../service/matrix-state.service";
import { ModelService } from "../../service/model.service";
import { WindPowersService } from "../../service/wind-powers.service";
import { FarmEchartsComponent } from "./farm-load-trend/farm-echarts/farm-echarts.component";
import { TurbineDetailComponent } from './turbine-detail/turbine-detail.component';
import { TurbineDetailTooltipComponent } from './turbine-detail/turbine-detail-tooltip/turbine-detail-tooltip.component';
import { TurbineSystemDetailsComponent } from './turbine-detail/turbine-system-details/turbine-system-details.component';
import { StationComponent } from './station/station.component';
import { DeviceTagSelectorModule } from "../common/device-tag-selector/device-tag-selector.module";
import { DeviceDetailModule } from "../common/device-detail/device-detail.module";
import { DataSourceModule } from "../../service/data-source/data-source.module";
import { DeviceService } from '../../service/device.service';
import { DeviceChannelService } from '../../service/device-channel.service';
import { SetofvalueService } from "../../service/setofvalue.service";

import { AlarmListDetailComponent } from "./turbine-detail/alarm-list/alarm-list.component"
import { TdDataTableService, TdDialogService } from "@covalent/core";
import { TurbcomponentService } from "../../service/turbcomponent.service";
import { ThreedComponent } from './threed/threed.component';
import { KeytargetComponent } from './keytarget/keytarget.component';

import { DragDropModule } from 'primeng/primeng';
import { EchartsModule } from "../common/echarts/echarts.module";
import { MyValidators } from "../../utils/validator/rang";
import { TurboperHistoryService } from "../../service/turboper-history.service";
import { ConvergenceboxListComponent } from './convergencebox-list/convergencebox-list.component';
import { MdDialogModule } from '@angular/material';
import { InverterDetailComponent } from './inverter-detail/inverter-detail.component';
import { InverterAlarmListComponent } from './inverter-detail/inverter-alarm-list/inverter-alarm-list.component';
import { ModelParamService } from "../../service/model-param.service";
import { DeviceComponent } from './inverter-list/device/device.component';
import { OverlayPanelModule } from 'primeng/primeng';
import { ConvergenceboxDetailComponent } from './convergencebox-list/convergencebox-detail/convergencebox-detail.component';
import { ConvergenceboxViewComponent } from './convergencebox-list/convergencebox-view/convergencebox-view.component';
import { InverterDetailSystemComponent } from './inverter-detail/inverter-detail-system/inverter-detail-system.component';
import { BoxSubStationComponent } from './boxsubstation/boxsubstation.component';
import { TransformerComponent } from './boxsubstation/transformer/transformer.component';
import { RunStopsService } from "../../service/run-stops.service";
import { FarmModelModule } from '../common/farm-model/farm-model.module';
import { PhotovoltaicModelModule } from '../common/photovoltaic-model/photovoltaic-model.module';
import { CapacityViewComponent } from './capacity-view/capacity-view.component';
import { CapacityChartComponent } from './capacity-view/capacity-chart/capacity-chart.component';
import { CapacityViewService } from '../../service/capacity-view.service';
import { LossElectricityService } from '../../service/loss-electricity.service';
import { NetworkComponent } from './network/network.component';




@NgModule({
  imports: [
    CommonModule,
    MonitorRoutingModule,
    SharedModule,
    FormsModule,
    ReactiveFormsModule,
    MaterialSharedModule,
    DeviceTagSelectorModule,
    DataSourceModule,
    DragDropModule,
    EchartsModule,
    MdDialogModule,
    OverlayPanelModule,
    DeviceDetailModule,
    FarmModelModule,
    PhotovoltaicModelModule,
  ],
  exports: [
  ],
  declarations: [
    MonitorComponent,
    AlarmListDetailComponent,
    InverterDetailSystemComponent,
    TurbineListComponent,
    TurbineDataListComponent,
    FarmSelectorComponent,
    TurbineComponent,
    TurbineMatrixComponent,
    FarmMultiSelectorComponent,
    MatrixTagSelectorComponent,
    MatrixFarmComponent,
    MatrixTurbineComponent,
    TurbineTrendComponent,
    MatrixTotalComponent,
    TurbineTrendComponent,
    TurbineLoadComponent,
    FarmLoadTrendComponent,
    FarmEchartsComponent,
    TurbineDetailComponent,
    TurbineDetailTooltipComponent,
    TurbineSystemDetailsComponent,
    StationComponent,
    ThreedComponent,
    KeytargetComponent,
    ConvergenceboxListComponent,
    ConvergenceboxDetailComponent,
    ConvergenceboxViewComponent,
    InverterListComponent,
    DeviceComponent,
    InverterDetailComponent,
    InverterAlarmListComponent,
    BoxSubStationComponent,
    TransformerComponent,
    InverterDetailSystemComponent,
    CapacityViewComponent,
    CapacityChartComponent,
    NetworkComponent,
  ],
  providers: [
    MatrixStateGroupService,
    MatrixStateService,
    TagService,
    TagMapService,
    FarmService,
    TurbStatusService,
    PhaseService,
    CircuitService,
    DatePipe,
    ModelService,
    ModelParamService,
    WindPowersService,
    TdDialogService,
    TdDataTableService,
    TurbcomponentService,
    MyValidators,
    TurboperHistoryService,
    DeviceService,
    DeviceChannelService,
    ModelParamService,
    RunStopsService,
    ModelParamService,
    SetofvalueService,
    LossElectricityService,
    CapacityViewService
  ],
  // entryComponents: [
  //   FarmCoordinateComponent,
  // ]
})
export class MonitorModule { }



// WEBPACK FOOTER //
// ./src/app/module/monitor/monitor.module.ts